package org.example.memora.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.example.memora.DTO.PostCreateDTO;
import org.example.memora.entity.Post;
import org.example.memora.entity.PostCategory;
import org.example.memora.DTO.PostDTO;
import org.example.memora.common.result.Result;
import org.example.memora.entity.Post;
import org.example.memora.entity.vo.PostVO;

import java.util.List;

public interface PostService {
    Page<Post> getRecommendedPosts(String userId, Integer page, Integer size,String categoryId);

    Post getPostById(Integer postId);


    Page<Post> searchPosts(String keyword, String hashtag, Integer page, Integer size);

    List<PostCategory> getPostCategories();
    List<Post> findByUserId(String userId);
    Result<?> createPost(PostCreateDTO dto, String userId);

    PostVO toPostVO(Post post);

   String createPostByAI(PostCreateDTO dto, String userId);

    Result<?> updatePost(String postId, PostCreateDTO  dto, String userId);

    Post getPostById(String id);

    Post save(Post post);

    Post findById(String id);

    void deleteById(String id);

    Post update(Post post);

    List<Post> findAll();

    int getLikeCount(String postId);
    int getCommentCount(String postId);

    int getCollectionCount(String postId);
}



